vlwkaos' digital garden

TypeScript - type alias vs interface

둘다 anonymous object type의 역할. 하지만 확장하는 방법에 차이가 있음

Extending an interface

interface Animal {
  name: string
}
interface Bear extends Animal {
  honey: boolean
}
const bear = getBear()
bear.name
bear.honey`

Extending a type via intersections 그리고 Type의 경우 typescript가 지원하는 advanced type을 계속 적용하여 사용할 수 있음

type Animal = {
  name: string
}
type Bear = Animal & {
  honey: boolean
}
const bear = getBear();
bear.name;
bear.honey;
  • type의 경우 재선언할 수 없다.
  • interface는 재선언할 경우 merging이 일어난다.
TypeScript - type alias vs interface